1. Technical Field
The present invention relates in general to neutralizing unauthorized access to a user input interface in a data processing system, and in particular to distinguishing between physical keystroke input and software keystroke emulation. More particularly, the present invention relates to identifying a physically generated keyboard keystroke within a universal serial bus (USB) host controller and providing selective access to a keyboard driver in response thereto such that system access by emulated keystrokes may be restricted.
2. Description of the Related Art
Computer security is becoming increasingly important in today's heavily networked computer systems. Protecting information contained in data files within such systems is a non-trivial and costly undertaking. As intra-networking and inter-networking technologies continue to rapidly advance, providing system security for personal computers is an important goal.
The components of a personal computer are assembled into an enclosure that includes a variety of data ports or external connectors to couple input and output devices to the system processor. In addition to such dedicated ports for connecting input devices such as a keyboard or a mouse, a personal computer system may also include a variety of general purpose busses for interfacing a wide variety of peripheral devices through industry standard interfaces.
One such type of interface is the Universal Serial Bus (USB) interface, the specification of which is set forth in a generally available document entitled “Universal Serial Bus Specification” Release 1.1, Sep. 23, 1998, (USB.ORG), prepared by representatives of the Compaq, Intel, Microsoft, and NEC corporations. Peripheral device interfaces that comply with this standard are referred to as USB interfaces and have been included in many recently developed personal computer systems. On such personal computer systems, USB interfaces serve to provide well-known plug and play capability for personal computer peripherals such as telephones, CD-ROM drives, joysticks, tape and floppy drives, scanners, and printers. Additionally, the USB interface allows an alternate connection for primary system input devices such as keyboards and mice, providing an alternative to the dedicated keyboard and mouse ports that many personal computer manufacturers provide.
Personal computers have always been vulnerable to acquiring internal system problems that are introduced by outside sources, such as when a virus is introduced into the system via a floppy disk. As avenues for data processing networking increase via internetworking, Local Area Networking, etc., personal computers are becoming even less isolated and more susceptible to externally introduced corruption. One type of such corruption faced by personal computer system users is commandeering of system input interfaces by an unauthorized source. This situation arises, for example, when software instructions are utilized to emulate keyboard keystrokes and thus assume control of the host keyboard driver application.
From the foregoing, it can be appreciated that a need exists for a system and method for verifying that a keyboard control instruction originated as a physical keystroke rather than as a software emulated keystroke.